High speed communications over packet-based networks can place a heavy burden on end-host resources.
A host may typically be connected to a network using at least one network adaptor. The network adaptor receives packets from the network that are destined for the host. The network adaptor causes the packets to be placed in host memory buffers associated with the operating system. When one or more packets have been placed, the adaptor notifies the host processor of this event, typically using an interrupt. The packets are then processed by the host operating system, including delivering application payload data of the packets from the operating system buffers to buffers of a destination application corresponding to the packets.
Each application data bearing packet received from the network includes the application data, encapsulated within a stack of headers according to a network communication stack. For example, the network communication may be via TCP/IP over Ethernet. In this case, the TCP/IP stack encapsulates application data in a TCP header, and the TCP encapsulated data are encapsulated in an IP header. The TCP/IP encapsulated data are encapsulated in a header according to a local area network technology protocol, such as Ethernet.
In the high-speed communications environment, there are several challenges for end-host resources. One challenge is the high packet arrival rate, which implies a high associated interrupt rate as the host is notified of the arrival of each packet. Another challenge is associated with the memory bandwidth resources to copy application payload data from the operating system buffers to application buffers. Yet another challenge is to achieve low communication latency between the network and the host via the network adaptor, such that application payload received from the network by the network adaptor is provided in a relatively expedient manner to the application.
The present invention in some aspects may be directed to one or more of these challenges identified above to result in high speed and low latency communication with reduced demands on host processing and memory resources.
The challenges of high-speed communications have led to enhancements to network adaptor capabilities, resulting in so-called “Intelligent Network Adaptors” that, for example, offload some or all network communication protocol processing. In addition, direct data placement (DDP) is known. It refers to the capability of some intelligent network adaptors to process network packets arriving from the network and place payload data contained within the network packets directly into pre-determined locations in host memory.